package com.ruoyi.project.business.askleave.service;

import java.time.LocalDate;
import java.util.List;
import com.ruoyi.project.business.askleave.entity.AskLeave;
import com.ruoyi.project.business.askleave.request.ListAskLeaveRequest;
import com.ruoyi.project.business.askleave.request.AddAskLeaveRequest;
import com.ruoyi.project.business.askleave.response.AskLeaveResponse;

/**
 * 请假Service接口
 * 
 * @author ${author}
 * @date 2024-04-11
 */
public interface IAskLeaveService {
    /**
     * 查询请假
     *
     * @param id 请假ID
     * @return 请假
     */
    public AskLeave selectAskLeaveById(Long id);

    /**
     */
    public List<AskLeaveResponse> selectAskLeaveList(ListAskLeaveRequest request, Long tenantId);


    public int insertAskLeave(AddAskLeaveRequest request, Long operatorId, Long tenantId);

    /**
     * 修改请假
     * 
     * @return 结果
     */
    public int updateAskLeave(AskLeave entity, Long operatorId, Long tenantId);

    /**
     * 批量删除请假
     * 
     * @return 结果
     */
    public int deleteAskLeaveByIds(Long[] ids, Long operatorId, Long tenantId);

    /**
     * 删除请假信息
     * 
     * @return 结果
     */
    public int deleteAskLeaveById(Long id, Long operatorId, Long tenantId);

    List<AskLeave> findUserLeaves(List<Integer> aimDayOfMonths, Integer year, Integer month, Long userId, Long tenantId);
}
